#ifndef INCLUDED_RANDOM_H
#define INCLUDED_RANDOM_H

#ifndef __cplusplus
#error Who lives in a pineapple under the sea?
#endif

#include <cmath>

#include <dogon/glsl.h>


//
// uniform distribution
//

template <typename T> inline T randomize_uniform(T t) { return t; }
  // part.template.specialization: scalars
  template <bool> inline int randomize_uniform(bool b) {
  }
  template <int> inline int randomize_uniform(int i) {
  }
  template <float> inline float randomize_uniform(float f) {
  }
  template <double> inline double randomize_uniform(double f) {
  }
  template <std::complex<float> > inline std::complex<float> randomize_uniform(std::complex<float> c) {
  }
  template <std::complex<double> > inline std::complex<double> randomize_uniform(std::complex<double> c) {
  }
  // part.template.specialization: std::vectors
  template <std::vector<bool> > inline int randomize_uniform(std::vector<bool> b) {
  }
  template <std::vector<int> > inline int randomize_uniform(std::vector<int> i) {
  }
  template <float> inline float randomize_uniform(float f) {
  }
  template <double> inline double randomize_uniform(double f) {
  }
  template <std::complex<float> > inline std::complex<float> randomize_uniform(std::complex<float> c) {
  }
  template <std::complex<double> > inline std::complex<double> randomize_uniform(std::complex<double> c) {
  }


#ifdef INCLUDED_RANDOM_H_WANT_EXPERIMENTAL
class __random_experimental
{
	

	randomize(y);

	std::vector<float> x,y;
	
	y = std::vector<T>;


	// randomize x
};
#endif /* INCLUDED_RANDOM_H_WANT_EXPERIMENTAL */
#endif /* INCLUDED_RANDOM_H */